package cn.itsource.basic.util;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 异步请求返回使用的公共对象
 */
@Data //get set toString equals hashCode
@AllArgsConstructor //全参构造
@NoArgsConstructor  //无参构造
@ApiModel(value = "返回数据的对象", description = "就是个对象，别问了")
public class AjaxResult {
    //状态码 0000:成功 1000:系统异常 1001:登录超时
    @ApiModelProperty(value = "状态码 0000:成功 1000:系统异常 1001:登录超时")
    private String code = PetHomeConstant.SYSTEM_SUCCESS;
    //成功/失败的状态
    @ApiModelProperty(value = "成功/失败的状态")
    private Boolean success = true;
    //提示信息
    @ApiModelProperty(value = "提示信息")
    private String message = "OK";
    //返回页面的数据
    @ApiModelProperty(value = "返回页面的数据")
    private Object data;

    /**
     * 返回成功，不携带数据
     */
    public static AjaxResult createSuccess(){
        return new AjaxResult();
    }

    /**
     * 返回成功，携带数据
     */
    public static AjaxResult createSuccess(Object data){
        return new AjaxResult(PetHomeConstant.SYSTEM_SUCCESS,true,"OK",data);
    }


    /**
     * 返回异常，自定义code用这个方法
     */
    public static AjaxResult createError(String code,String message){
        return new AjaxResult(code,false,message,null);
    }

    /**
     * 返回系统异常直接用这个方法
     */
    public static AjaxResult createError(String message){
        return createError(PetHomeConstant.SYSTEM_ERROR, message);
    }

}
